#ifndef SONGINFODIALOG_H
#define SONGINFODIALOG_H

#include <QDialog>

class QWidget;
class QVBoxLayout;
class QGridLayout;
class QLabel;
class QTextEdit;
class QPushButton;
class QFrame;

struct Song;

class SongInfoDialog : public QDialog
{
    Q_OBJECT

private:
    QVBoxLayout* pMainGrid;

    QLabel* pTitleLabel;

    QGridLayout* pArtistsGrid;

    QLabel* pUploaderFlagLabel;
    QLabel* pUploaderNameLabel;
    QFrame* pHLine1;

    QVBoxLayout* pSongInfoLayout;
    QLabel* pSongInfoLabel;
    QLabel* pSongNoteLabel;
    QLabel* pSongLengthLabel;
    QLabel* pSongStatusLabel;
    QLabel* pSongLockLabel;
    QLabel* pSongTypeLabel;
    QLabel* pSongBitrateLabel;
    QLabel* pSongSampleRateLabel;
    QTextEdit* pSongAdditionnalInfoViewer;
    QFrame* pHLine2;
    QVBoxLayout* pAdditionnalLayout;
    QLabel* pAdditionnalLabel;
    QLabel* pPouetLabel;

    QPushButton* pValidateButton;

protected slots:

    void accept(void);
    void reject(void);

signals:

    void deleteSIDSignal(SongInfoDialog* pSID);

public:
    SongInfoDialog(const Song& s, QWidget* parent=0);
    ~SongInfoDialog(void);
};

#endif // SONGINFODIALOG_H
